home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Aminet 30
/
Aminet 30 (1999)(Schatztruhe)[!][Apr 1999].iso
/
Aminet
/
util
/
pack
/
xpk_Source.lha
/
xpk_Source
/
Assembler
/
testFilePack.a
Wrap
Text File
|
1998-11-09
|
2KB
|
105 lines
* Programmheader
*
* Name: testFilePack
* Author: SDI
* Distribution: Freeware
* Description: easy file to file packer
* Compileropts: -
* Linkeropts: -l xpkmaster amiga
*
* 1.0 06.01.97 : wrote to find the read bit error
* 1.1 28.11.97 : moved chunk-hook into include file
* 1.2 25.10.98 : made an assembler version (340 bytes)
INCLUDE "AINCLUDE:IncDirs.i"
INCLUDE "lvo.i"
INCLUDE "dos/dos.i"
INCLUDE "dos/dosextens.i"
INCLUDE "xpk/xpk.i"
LEA.L -12(A7),A7
MOVE.L A7,A2 * A2 holds args array
LEA.L User(PC),A3 * set default mode to USER
MOVE.L A3,8(A2)
MOVEQ #RETURN_FAIL,D4 * return value
MOVE.L 4.W,A5 * A5 is SysBase
MOVE.L A5,A6
* handle WB start
SUBA.L A1,A1
JSR _LVOFindTask(A6)
MOVE.L D0,A3
TST.L pr_CLI(A3)
BNE.B .iscli
LEA pr_MsgPort(A3),A0
JSR _LVOWaitPort(A6)
LEA pr_MsgPort(A3),A0
JSR _LVOGetMsg(A6)
MOVE.L D0,A1
JSR _LVOForbid(A6)
JSR _LVOReplyMsg(A6)
BRA.W end
DC.B 'testFilePack 1.2 (25.10.1998) (Freeware) by SDI',0
EVEN
.iscli
MOVEQ #37,D0
LEA DosName(PC),A1
JSR _LVOOpenLibrary(A6)
MOVE.L D0,A4 * A4 is DOSBase
BEQ.B end
MOVEQ #0,D3
MOVE.L A2,D2
LEA.L Param(PC),A3
MOVE.L A3,D1
MOVE.L A4,A6
JSR _LVOReadArgs(A6)
MOVE.L D0,D7 * D7 is rda
BEQ.B freear
MOVEQ #4,D0
LEA XpkName(PC),A1
MOVE.L A5,A6
JSR _LVOOpenLibrary(A6)
MOVE.L D0,A6 * A6 is XpkBase
BEQ.B freear
CLR.L -(A7) * TAG_DONE
MOVE.L 8(A2),-(A7) * PackMethod
MOVE.L #XPK_PackMethod,-(A7)
MOVE.L 4(A2),-(A7) * destination
MOVE.L #XPK_OutName,-(A7)
MOVE.L (A2),-(A7) * source
MOVE.L #XPK_InName,-(A7)
LEA (A7),A0
JSR _LVOXpkPack(A6)
LEA 7*4(A7),A7 * reset stack
MOVE.L D0,D4
BEQ.B clxpk
SUB.L A0,A0 * print the error
JSR _LVOXpkPrintFault(A6)
MOVEQ #RETURN_FAIL,D4
clxpk MOVE.L A6,A1
MOVE.L A5,A6
JSR _LVOCloseLibrary(A6)
freear MOVE.L D7,D1
MOVE.L A4,A6
JSR _LVOFreeArgs(A6)
cldos MOVE.L A4,A1
MOVE.L A5,A6
JSR _LVOCloseLibrary(A6)
end LEA 12(A7),A7
MOVE.L D4,D0
RTS
Param DC.B 'FROM/A,TO/A,METHOD',0
User DC.B 'USER',0
DosName DC.B 'dos.library',0
XpkName DC.B 'xpkmaster.library',0
END